The present invention concerns monitoring resources on a computer and pertains particularly to a resource monitor which is implemented using monitor modules.
In computing systems it is often desirable to monitor the operation and status of various resources within the computing system. Once status changes or particular events are detected, these may be sent to an application or management platform for further processing and/or for being made available to a user.
For example, status changes or particular events detected by a resource monitor may be received by a resource monitoring management program such as the OpenView resource monitoring management program available from Hewlett-Packard Company, having a business address of 3000 Hanover Street, Palo Alto, Calif. 94304, or the MC/ServiceGuard resource monitoring management program, also available from Hewlett-Packard Company. Other existing products such as the High Availability Clustered Multi-Processing (HACMP) control application available from IBM Company.
One deficiency with existing resource monitoring management programs such as those listed above is that it is often hard to add to the systems new resource monitors or to take advantage of other types of resource monitors. Support for a new resource monitor within a resource monitoring management program typically requires the ability to make application programmer interface (API) calls to the new resource monitor. Further, the new resource monitor needs to be designed to have the ability to send events using the API calls currently recognized by the resource monitoring management program, or the existing resource monitoring management program needs to be redesigned to recognize the events sent by the new resource monitor. Thus adding a new resource monitoring capability to such a resource monitoring system requires at least a new release of the resource monitoring management program and may require significant redevelopment to sufficiently update the resource monitoring management program.
In accordance with the preferred embodiment of the present invention, resources of a computing system are monitored. A user interacting with a resource management client selects which resources of the computing system are to be monitored. Also, the user selects monitor parameters for each resource. For example, the monitor parameters can be a resource polling interval, a notification schedule, a notification protocol, notification options and/or some other parameter which is deemed of interest to a user. Then, for each resource selected, the resource management client forwards to a resource monitoring manager a monitor request to monitor the resource. The resource monitoring manager reformats the monitor request to form a reformatted monitor request. The resource monitoring manager forwards the reformatted monitoring request to one of a plurality of resource monitor modules. The resource monitor module which receives the reformatted monitoring request monitors the resource.
In the preferred embodiment of the present invention, the resource monitoring manager stores information about each resource monitor module in a resource dictionary. In response to a request for information from the resource management client about a first resource, the resource monitoring manager searches for the information within the resource dictionary. When the information is within the resource dictionary, the information is obtained from the resource dictionary. For example, the information may include text which is managed and stored by the resource monitoring manager.
When the information is not within the resource dictionary, the information is obtained from a first resource monitor module which is associated with the first resource. This is done, for example, by sending an information request to the first resource monitor module and receiving an information reply back from the first resource monitor module. The information is then forwarded from the resource monitoring manager to the resource management client.
In the preferred embodiment, the resources are grouped into classes, and where desirable, further into subclasses. and subclasses. The actual resource instances for a class or subclass may be known only by the resource monitoring module. Therefore, when a user selects a resource class (or subclass),the resource management client forwards to a resource monitoring manager, an identification request to identify resource instances within the resource class (subclass). The resource monitoring manager reformats the identification request to form a reformatted identification request. The resource monitoring manager forwards to a first resource monitor module the reformatted identification request. The resource monitoring manager uses the resource dictionary to determine the appropriate resource monitor module to contact. The first resource monitor module returns to the resource monitoring manager resource instances within the resource class (subclass). The resource monitoring manager returns to the resource management client the resource instances within the resource class (subclass). Resource subclasses may be further subdivided into more specialized subclasses, but ultimately resource instance information is sent back to the resource management client. The resource instances are then displayed to the user for selection.
Also in the preferred embodiment, at most one instance of a resource monitoring module is active on the system at any one time. However, instances of multiple resource monitoring modules are able to be active on the system at any one time. Further, an instance of a multiple resource monitoring module is active only when the resource management client has requested monitoring of a resource associated with the instance.
The use of a resource monitoring manager introduces flexibility of the interface between one or more resource management clients and various resource monitor modules. Standardization of the interface between the resource monitoring manager and resource monitor modules allows resource monitor modules to be easily added and removed from the system without a redesign of the resource monitoring manager or the resource management client. Storage of registration within the resource monitoring manager allows resource monitor modules to be added and removed dynamically (i.e., while the computer system is running). The ability of the resource monitoring manager to obtain information from memory modules allows for a resource management client to discover dynamically the existence and capabilities of resource monitor modules that are currently running on the system. In particular, a resource management client needs only to know the type of resource to be monitored. Through interactions with the resource monitoring manager the client learns about the specific resources available to be monitored. Additionally, the interface between the resource monitoring manager and various resource management clients can be modified, for example, to allow for new reporting methods, without requiring any changes to the existing resource monitor modules.